package cool.mor.controller;

import cool.mor.dto.RegisterDto;
import cool.mor.dto.TestDto;
import cool.mor.dto.UserDto;
import cool.mor.form.RegisterForm;
import cool.mor.form.TestForm;
import cool.mor.form.UserForm;
import cool.mor.service.LoginService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @author Ivan
 *
 * 1、加入shiro
 * 2、配置角色
 * 3、开启拦截
 * 4、测试接口
 */
@RestController
public class LoginController {
    @Autowired
    LoginService loginService;

    /**
     *   接收两个参数  user   password
     *   返回：状态码，消息，token，
     * @return
     */
    @RequestMapping("/login")
    public UserDto login(UserForm userForm){
        System.out.println("login获得的userForm==================="+userForm);
        return loginService.login(userForm);
    }
    /**
     *   token测试
     *   通过token访问shiro拦截的页面，实现免登录访问，密钥访问       ---未完成
     */
    @RequestMapping("/test")
    public TestDto test(TestForm testForm){
        return loginService.test(testForm);
    }

    /**
     * 未授权路径返回值
     * @return
     */
    @RequestMapping("/noauth")
    public String noauth(){
        return "未授权";
    }

    /**
     * 注册器
     * @param registerForm   接收一个注册表单数据
     * @return   返回一个注册信息对象
     *                          注册成功：返回成功的 message  和 code
     *                          注册失败：返回失败的 message  和 code   1、手机号码重复  2、主键重复（概率极小）
     */
    @PostMapping ("/register")
    public RegisterDto register(RegisterForm registerForm){
        return loginService.register(registerForm);
    }
}
